#ifndef ENERGY_SAMPLING_H
#define ENERGY_SAMPLING_H

#include "bsp_can.h"
#include "bsp_dwt.h"
#include <stdlib.h>
#include "stdint.h"
#include "daemon.h"
/* 数据缩放因子定义 */
#define CURRENT_SCALE_FACTOR       100      /* 电流缩放因子10，主控端除以10得到实际值(0.01A) */
#define VOLTAGE_SCALE_FACTOR       10      /* 电压缩放因子100，主控端除以100得到实际值(0.01V) */
#define POWER_SCALE_FACTOR         10    /* 功率缩放因子100，主控端除以100得到实际值(0.01W) */
#define POWER_REPORT_ID            0x100   /* 功率数据报告ID */

typedef struct {
	float current;              /* 电流值 (单位: A) */
	float voltage;              /* 电压值 (单位: V) */
	float power;                /* 功率值 (单位: W) */
	uint8_t report_interval;    /* 汇报时间间隔 (单位: ms，0为停止自动发送) */
    float dt;
} Power_Data_Measure_s;

typedef struct {	
    CAN_Init_Config_s can_init_config;
} Power_Sampling_Init_Config_s;
typedef struct {
    CANInstance *sampling_can;
    Power_Data_Measure_s measure;
    DaemonInstance* daemon;
} Power_Sampling_Instance;
Power_Sampling_Instance *PowerSamplingInit(Power_Sampling_Init_Config_s *config);



#endif // !1